<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // - str.search(正则)
  //   - 查索引
  // - str.match(正则)
  //   - 查子串
  // - reg.exec(字符)
  //   - 查子串

  var str = "helloabc345qwe876sfgh544h";

  var reg = /\d+/g;

  console.log( str );

  // 根据正则查询第一次出现的索引
  console.log( str.search(reg) );
  console.log( str.search(reg) );
  console.log( str.search(reg) );

  // 根据正则查询符合的数据，放在一个数组中
  // 正则没有全局，只查一个
  // 正则有全局，查所有
  console.log( str.match(reg) );
  console.log( str.match(reg) );
  console.log( str.match(reg) );

  // 一次只能查询一个符合正则的子串，但是之后的查询会在上次查询结束的位置继续查询
  // 可以通过正则的lastIndex查看本次查询结束的位置索引
  // 查询不到，返回null
  console.log( reg.exec(str) );
  console.log( reg.lastIndex );
  reg.lastIndex = 0
  
  console.log( reg.exec(str) );
  console.log( reg.lastIndex );
  
  console.log( reg.exec(str) );
  console.log( reg.lastIndex );
  
  console.log( reg.exec(str) );
  console.log( reg.lastIndex );

  console.log( reg.exec(str) );

  
  console.clear();
  console.log("========");


  // 会将正则中的每个子串的单独查询结果，放在数组第一个数据之后的位置

  var str2 = "abc123qwe234asd345zxc457";

  var reg = /((([a-z])\d)\d)\d/g;

  console.log(reg.exec(str2));
  console.log(reg.exec(str2));
  console.log(reg.exec(str2));





  
</script>
</html>